package com.erp.erp_entitys.money.rsp;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author zjk
 * @version 1.0
 * @description 按发票应收款统计返回数据
 * @date 2021-03-28 23:27
 */
public class CollectionStatistics2Rsp implements Serializable {
    /**
     * 发票编号
     */
    private String invoiceNumber;
    /**
     *发票日期Date
     */
    private Date invoiceDate;
    /**
     *发票日期Str
     */
    private String invoiceStr;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 客户编码
     */
    private String customerCode;
    /**
     * 结汇 价格术语
     */
    private String priceTermsName;
    /**
     * 外销 价格术语
     */
    private String ecPriceName;
    /**
     * 外销合同号
     */
    private String contractNo;
    /**
     * 客户来源(客户表中的客户来源关联字典表中的code获取name)
     */
    private String customerSource;
    /**
     * 币种
     */
    private String currencyEnglishName;
    /**
     * 应收货款--对应结汇单据 发票总额
     */
    private BigDecimal invoiceMoney;
    /**
     * 人民币应收--对应结汇单据 发票总额*rmb汇率（业务层计算）
     */
    private BigDecimal invoiceMoneyRmb;
    /**
     * 美元应收--对应结汇单据 发票总额*美元汇率（业务层计算）
     */
    private BigDecimal invoiceMoneyUsd;
    
    /**
     * 已收货款--对应结汇发票收款明细 收汇金额
     */
    private BigDecimal collectionAmount;
    /**
     * 已收货款Rmb
     */
    private BigDecimal collectionAmountRmb;
    /**
     * 已收货款Usd
     */
    private BigDecimal collectionAmountUsd;
    /**
     * 具体国外银行扣费（明细）
     */
    private BigDecimal foreignBankDeductions;
    /**
     * 具体国内银行扣费(明细)
     */
    private BigDecimal domesticBankCharge;
    /**
     * 收款模块退款登记 退款金额
     */
    private BigDecimal refundAmount;
    /**
     * 人民币退款金额 Rmb
     */
    private BigDecimal refundAmountRmb;
    /**
     * 退款金额 Usd
     */
    private BigDecimal refundAmountUsd;

    /**
     * 未收货款 invoiceMoney应收-amountClaimed实收（业务层计算）-扣费
     */
    private BigDecimal unPayment;
    /**
     * 未收货款rmb
     */
    private BigDecimal unPaymentRmb;
    /**
     *实收货款  收款明细 认领金额
     */
    private BigDecimal amountClaimed;
    /**
     *人民币实收 收款明细 认领金额*rmb汇率(业务层计算)
     */
    private BigDecimal amountClaimedRmb;
    /**
     * 业务员 结汇单据业务员
     */
    private String billExchangeSalesman;
    /**
     * 操作员 结汇单据操作员
     */
    private String billExchangeOperatorName;
    /**
     *最近一次认领日期Date 该结汇单据最后一次认领日期
     */
    private Date maxClaimDate;
    /**
     *最近一次认领日期Str
     */
    private String maxClaimDateStr;
    /**
     *认领日期Date
     */
    private Date claimDate;
    /**
     *认领日期Str
     */
    private String claimDatStr;

    /**
     *公司 结汇单据制单公司
     */
    private String billExchangeCompanyName;
    /**
     *银行名称 结汇单据银行
     */
    private String billExchangeBankName;

    /**
     *应收到账日期 发票日期+账期(业务层计算)
     */
    private String receivablePayday;
    /**
     *账期 结汇单据主信息 账期
     */
    private String payday;
    /**
     *提前收款天数 应收到账日期-认领日期(业务层计算)
     */
    private String advanceCollectionDay;
    /**
     *逾期 认领日期-应收到账日期(业务层计算)
     */
    private String overdue;
    /**
     *运抵国 结汇单据目的地
     */
    private String endPlace;
    /**
     *实际开船日期Date 结汇单据实际开船日期
     */
    private Date actualAtdDate;
    /**
     *实际开船日期Str 结汇单据实际开船日期
     */
    private String actualAtdStr;

    /**
     * 人民币汇率
     */
    private BigDecimal rmbRate;
    /**
     * 美元汇率
     */
    private BigDecimal usdRate;

    /**
     *业务模式
     */
    private String businessMode;
    /**
     * 收款日期Date
     */
    private Date receivePaymentDate;
    /**
     * 收款日期Str
     */
    private String receivePaymentStr;

    public String getEcPriceName() {
        return ecPriceName;
    }

    public void setEcPriceName(String ecPriceName) {
        this.ecPriceName = ecPriceName;
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public Date getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(Date invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public String getInvoiceStr() {
        return invoiceStr;
    }

    public void setInvoiceStr(String invoiceStr) {
        this.invoiceStr = invoiceStr;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getPriceTermsName() {
        return priceTermsName;
    }

    public void setPriceTermsName(String priceTermsName) {
        this.priceTermsName = priceTermsName;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getCustomerSource() {
        return customerSource;
    }

    public void setCustomerSource(String customerSource) {
        this.customerSource = customerSource;
    }

    public String getCurrencyEnglishName() {
        return currencyEnglishName;
    }

    public void setCurrencyEnglishName(String currencyEnglishName) {
        this.currencyEnglishName = currencyEnglishName;
    }

    public BigDecimal getInvoiceMoney() {
        return invoiceMoney;
    }

    public void setInvoiceMoney(BigDecimal invoiceMoney) {
        this.invoiceMoney = invoiceMoney;
    }

    public BigDecimal getInvoiceMoneyRmb() {
        return invoiceMoneyRmb;
    }

    public void setInvoiceMoneyRmb(BigDecimal invoiceMoneyRmb) {
        this.invoiceMoneyRmb = invoiceMoneyRmb;
    }

    public BigDecimal getInvoiceMoneyUsd() {
        return invoiceMoneyUsd;
    }

    public void setInvoiceMoneyUsd(BigDecimal invoiceMoneyUsd) {
        this.invoiceMoneyUsd = invoiceMoneyUsd;
    }

    public BigDecimal getCollectionAmount() {
        return collectionAmount;
    }

    public void setCollectionAmount(BigDecimal collectionAmount) {
        this.collectionAmount = collectionAmount;
    }

    public BigDecimal getCollectionAmountRmb() {
        return collectionAmountRmb;
    }

    public void setCollectionAmountRmb(BigDecimal collectionAmountRmb) {
        this.collectionAmountRmb = collectionAmountRmb;
    }

    public BigDecimal getCollectionAmountUsd() {
        return collectionAmountUsd;
    }

    public void setCollectionAmountUsd(BigDecimal collectionAmountUsd) {
        this.collectionAmountUsd = collectionAmountUsd;
    }

    public BigDecimal getForeignBankDeductions() {
        return foreignBankDeductions;
    }

    public void setForeignBankDeductions(BigDecimal foreignBankDeductions) {
        this.foreignBankDeductions = foreignBankDeductions;
    }

    public BigDecimal getDomesticBankCharge() {
        return domesticBankCharge;
    }

    public void setDomesticBankCharge(BigDecimal domesticBankCharge) {
        this.domesticBankCharge = domesticBankCharge;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmountRmb() {
        return refundAmountRmb;
    }

    public void setRefundAmountRmb(BigDecimal refundAmountRmb) {
        this.refundAmountRmb = refundAmountRmb;
    }

    public BigDecimal getRefundAmountUsd() {
        return refundAmountUsd;
    }

    public void setRefundAmountUsd(BigDecimal refundAmountUsd) {
        this.refundAmountUsd = refundAmountUsd;
    }

    public BigDecimal getUnPayment() {
        return unPayment;
    }

    public void setUnPayment(BigDecimal unPayment) {
        this.unPayment = unPayment;
    }

    public BigDecimal getUnPaymentRmb() {
        return unPaymentRmb;
    }

    public void setUnPaymentRmb(BigDecimal unPaymentRmb) {
        this.unPaymentRmb = unPaymentRmb;
    }

    public BigDecimal getAmountClaimed() {
        return amountClaimed;
    }

    public void setAmountClaimed(BigDecimal amountClaimed) {
        this.amountClaimed = amountClaimed;
    }

    public BigDecimal getAmountClaimedRmb() {
        return amountClaimedRmb;
    }

    public void setAmountClaimedRmb(BigDecimal amountClaimedRmb) {
        this.amountClaimedRmb = amountClaimedRmb;
    }

    public String getBillExchangeSalesman() {
        return billExchangeSalesman;
    }

    public void setBillExchangeSalesman(String billExchangeSalesman) {
        this.billExchangeSalesman = billExchangeSalesman;
    }

    public String getBillExchangeOperatorName() {
        return billExchangeOperatorName;
    }

    public void setBillExchangeOperatorName(String billExchangeOperatorName) {
        this.billExchangeOperatorName = billExchangeOperatorName;
    }

    public Date getMaxClaimDate() {
        return maxClaimDate;
    }

    public void setMaxClaimDate(Date maxClaimDate) {
        this.maxClaimDate = maxClaimDate;
    }

    public String getMaxClaimDateStr() {
        return maxClaimDateStr;
    }

    public void setMaxClaimDateStr(String maxClaimDateStr) {
        this.maxClaimDateStr = maxClaimDateStr;
    }

    public Date getClaimDate() {
        return claimDate;
    }

    public void setClaimDate(Date claimDate) {
        this.claimDate = claimDate;
    }

    public String getClaimDatStr() {
        return claimDatStr;
    }

    public void setClaimDatStr(String claimDatStr) {
        this.claimDatStr = claimDatStr;
    }

    public String getBillExchangeCompanyName() {
        return billExchangeCompanyName;
    }

    public void setBillExchangeCompanyName(String billExchangeCompanyName) {
        this.billExchangeCompanyName = billExchangeCompanyName;
    }

    public String getBillExchangeBankName() {
        return billExchangeBankName;
    }

    public void setBillExchangeBankName(String billExchangeBankName) {
        this.billExchangeBankName = billExchangeBankName;
    }

    public String getReceivablePayday() {
        return receivablePayday;
    }

    public void setReceivablePayday(String receivablePayday) {
        this.receivablePayday = receivablePayday;
    }

    public String getPayday() {
        return payday;
    }

    public void setPayday(String payday) {
        this.payday = payday;
    }

    public String getAdvanceCollectionDay() {
        return advanceCollectionDay;
    }

    public void setAdvanceCollectionDay(String advanceCollectionDay) {
        this.advanceCollectionDay = advanceCollectionDay;
    }

    public String getOverdue() {
        return overdue;
    }

    public void setOverdue(String overdue) {
        this.overdue = overdue;
    }

    public String getEndPlace() {
        return endPlace;
    }

    public void setEndPlace(String endPlace) {
        this.endPlace = endPlace;
    }

    public Date getActualAtdDate() {
        return actualAtdDate;
    }

    public void setActualAtdDate(Date actualAtdDate) {
        this.actualAtdDate = actualAtdDate;
    }

    public String getActualAtdStr() {
        return actualAtdStr;
    }

    public void setActualAtdStr(String actualAtdStr) {
        this.actualAtdStr = actualAtdStr;
    }

    public BigDecimal getRmbRate() {
        return rmbRate;
    }

    public void setRmbRate(BigDecimal rmbRate) {
        this.rmbRate = rmbRate;
    }

    public BigDecimal getUsdRate() {
        return usdRate;
    }

    public void setUsdRate(BigDecimal usdRate) {
        this.usdRate = usdRate;
    }

    public String getBusinessMode() {
        return businessMode;
    }

    public void setBusinessMode(String businessMode) {
        this.businessMode = businessMode;
    }

    public Date getReceivePaymentDate() {
        return receivePaymentDate;
    }

    public void setReceivePaymentDate(Date receivePaymentDate) {
        this.receivePaymentDate = receivePaymentDate;
    }

    public String getReceivePaymentStr() {
        return receivePaymentStr;
    }

    public void setReceivePaymentStr(String receivePaymentStr) {
        this.receivePaymentStr = receivePaymentStr;
    }

    /**
     * 重写toString
     */
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("CollectionStatistics2Rsp").append('[')
                .append("invoiceNumber=")
                .append(invoiceNumber)
                .append(",invoiceDate=")
                .append(invoiceDate)
                .append(",invoiceStr=")
                .append(invoiceStr)
                .append(",customerName=")
                .append(customerName)
                .append(",customerCode=")
                .append(customerCode)
                .append(",priceTermsName=")
                .append(priceTermsName)
                .append(",contractNo=")
                .append(contractNo)
                .append(",customerSource=")
                .append(customerSource)
                .append(",currencyEnglishName=")
                .append(currencyEnglishName)
                .append(",invoiceMoney=")
                .append(invoiceMoney)
                .append(",invoiceMoneyRmb=")
                .append(invoiceMoneyRmb)
                .append(",invoiceMoneyUsd=")
                .append(invoiceMoneyUsd)
                .append(",collectionAmount=")
                .append(collectionAmount)
                .append(",collectionAmountRmb=")
                .append(collectionAmountRmb)
                .append(",collectionAmountUsd=")
                .append(collectionAmountUsd)
                .append(",foreignBankDeductions=")
                .append(foreignBankDeductions)
                .append(",domesticBankCharge=")
                .append(domesticBankCharge)
                .append(",refundAmount=")
                .append(refundAmount)
                .append(",refundAmountRmb=")
                .append(refundAmountRmb)
                .append(",refundAmountUsd=")
                .append(refundAmountUsd)
                .append(",unPayment=")
                .append(unPayment)
                .append(",unPaymentRmb=")
                .append(unPaymentRmb)
                .append(",amountClaimed=")
                .append(amountClaimed)
                .append(",amountClaimedRmb=")
                .append(amountClaimedRmb)
                .append(",billExchangeSalesman=")
                .append(billExchangeSalesman)
                .append(",billExchangeOperatorName=")
                .append(billExchangeOperatorName)
                .append(",maxClaimDate=")
                .append(maxClaimDate)
                .append(",maxClaimDateStr=")
                .append(maxClaimDateStr)
                .append(",claimDate=")
                .append(claimDate)
                .append(",claimDatStr=")
                .append(claimDatStr)
                .append(",billExchangeCompanyName=")
                .append(billExchangeCompanyName)
                .append(",billExchangeBankName=")
                .append(billExchangeBankName)
                .append(",receivablePayday=")
                .append(receivablePayday)
                .append(",payday=")
                .append(payday)
                .append(",advanceCollectionDay=")
                .append(advanceCollectionDay)
                .append(",overdue=")
                .append(overdue)
                .append(",endPlace=")
                .append(endPlace)
                .append(",actualAtdDate=")
                .append(actualAtdDate)
                .append(",actualAtdStr=")
                .append(actualAtdStr)
                .append(",rmbRate=")
                .append(rmbRate)
                .append(",usdRate=")
                .append(usdRate)
                .append(",businessMode=")
                .append(businessMode)
                .append(",receivePaymentDate=")
                .append(receivePaymentDate)
                .append(",receivePaymentStr=")
                .append(receivePaymentStr)
                .append(']');
        return sb.toString();
    }
}
